home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 2 / LSD and 17bit Compendium Deluxe - Volume II.iso / a / prog / asmsrc / ply-int1.lha / PLY2-Intro1 / intro.s < prev   
Encoding:
Text File  |  1994-05-21  |  16.8 KB  |  1,134 lines

  1. ;
  2. ;
  3. ; ACHTUNG !
  4. ;
  5. ; DIESE MACROS BITTE JE NACH WUNSCH ABÄNDERN !
  6. ;
  7. ;
  8. ; -----------------------------------------------------------------
  9. ;
  10. ;  CODE: PLY-2/TRSi
  11. ;
  12. ; -----------------------------------------------------------------  
  13. ;
  14. ; Well, insert you text in the following lines.... This is a
  15. ; trainermenu aswell! Change it a bit if you do not need the
  16. ; trainer-options or for the case that you prefer a Replayer
  17. ;                
  18. ; The crunched length is: 4.6 Kilobytes (max. 5 KB) 
  19. ;
  20. ; For any questions call me or the coder of this, PLY-2
  21. ;
  22. ;
  23. ; Bye, CONtROL/TRSi
  24. ;
  25. ;
  26. ; -----------------------------------------------------------------  
  27.  
  28.  
  29.  
  30. TEXTE    MACRO
  31.  
  32. text1
  33.     dc.b    0,0,0,0
  34.     dc.b    "* TRISTAR & RED SECTOR INC *",0,0
  35.     dc.b    "PROUDLY PRESENTS",0,0
  36.     dc.b    "WUERGBENCH",0,0
  37.     dc.b    "CRACKING:NICHT NOETIG",0
  38.     dc.b    "TRAINER:WAR SCHON DRIN",0,0
  39.     dc.b    "COOLES DESIGN ODA WAS?",0
  40.     dc.b    "ABER HALLO! ICH HAB AUCH MAL",0
  41.     DC.B    "WIEDER WAS GEMACHT! UEBRIGENS,",0
  42.     DC.B    "ICH BRAUCHE DRINGEND EINE NEUE",0
  43.     dc.b    "VERSION VON VIRUSZ ODER SO WAS!",0
  44.     dc.b    "(KICK 1.3)",0
  45.     dc.b    "      ->PREZZ LMB",0,-1
  46.  
  47. text2    dc.b    0,0,0,0
  48.     dc.b    "*** TRAINERMENU ***",0,0,0
  49.  
  50. trainy    equ    8    ;Y-Coordinate der Trainer
  51.  
  52.     dc.b    "F1 UNLIMITED LIVES       OFF",0
  53.     dc.b    "F2 UNLIMITED AMMO        OFF",0
  54.     dc.b    "F3 UNLIMITED SHIELD      OFF",0
  55.     dc.b    "F4 UNLIMITED SMARTBOMBS  OFF",0
  56.     dc.b    "F5 CHEATKEYS             NAH",0,0
  57.     dc.b    "DA OBEN MUSS NOCH EIN VERNUENFTIG",0
  58.     dc.b    "LOGO HIN, ABER SONST:",0
  59.     DC.B    "A - PASS - PASS..",0,-2
  60.  
  61.  
  62. f1n    dc.b    "F1 UNLIMITED LIVES       OFF",0,-3
  63. f2n    dc.b    "F2 UNLIMITED AMMO        OFF",0,-3
  64. f3n    dc.b    "F3 UNLIMITED SHIELD      OFF",0,-3
  65. f4n    dc.b    "F4 UNLIMITED SMARTBOMBS  OFF",0,-3
  66. f5n    dc.b    "F5 CHEATKEYS             NAH",0,-3
  67. f6n
  68. f7n
  69. f8n
  70. f9n
  71. f10n
  72.  
  73.  
  74. f1y    dc.b    "F1 UNLIMITED LIVES       ON ",0,-3
  75. f2y    dc.b    "F2 UNLIMITED AMMO        ON ",0,-3
  76. f3y    dc.b    "F3 UNLIMITED SHIELD      ON ",0,-3
  77. f4y    dc.b    "F4 UNLIMITED SMARTBOMBS  ON ",0,-3
  78. f5y    dc.b    "F5 CHEATKEYS             YO!",0,-3
  79. f6y
  80. f7y
  81. f8y
  82. f9y
  83. f10y
  84.  
  85. trainanz = 5                    ; ANZAHL: BITTE EINSTELLEN !
  86.  
  87.  
  88. traintab blk.b    trainanz,0            ;DA SIND NACHHER TRAINERWERTE
  89.                         ;DRIN !
  90.     EVEN
  91.  
  92. ttab    dc.l    f1n,f1y,f2n,f2y,f3n,f3y
  93.     dc.l    f4n,f4y,f5n,f5y,f6n,f6y
  94.     dc.l    f7n,f7y,f8n,f8y,f9n,f9y
  95.     dc.l    f10n,f10y
  96.  
  97. text3
  98.     dc.b    0,0,0
  99.     DC.B    "SO, DAS IST DIE DRITTE SEITE...",0
  100.     DC.B    "(1. SEITE: PREZENTATION, 2.",0
  101.     DC.B    "SEITE: TRAINERMENU, 3.SEITE:",0
  102.     DC.B    "ERLAEUTERUNGEN ODER GREETINGS",0
  103.     DC.B    "ODER CREDITS ODER WASISCHNISCH...)",0,0
  104.     dc.b    "SOEDERLE, FADEOUT IS JETZ AUCH",0
  105.     DC.B    "DRIN...",0
  106.     DC.B    0,-1
  107.     EVEN
  108.  
  109.     ENDM
  110.             ;FÜR MUSIK BITTE EINSETZEN !
  111. MT_INIT    MACRO
  112.     rts
  113.     ENDM
  114. MT_EXIT MACRO
  115.     rts
  116.     ENDM
  117.  
  118. MT_VBL  MACRO        ;NUR FALLS VBLANK-PLAYER
  119.     rts
  120.     ENDM        
  121.     
  122.  
  123.     INCLUDE "df0:Ply2-Intro1/inc/hardmacros.s"
  124.     INCLUDE    "df0:Ply2-Intro1/inc/copper+blittermacros.s"
  125.     include    "df0:Ply2-Intro1/inc/linemacros.s"
  126.     section    "kl2",code_c
  127. scrw    equ    352
  128. scrbw    equ    scrw/8
  129. scrh    equ    280
  130. zomanz    equ    336
  131. anf
  132.     DEFPLN
  133.     DEFBLIT
  134.     INIT    cop0,inter,0
  135.     SPROFF
  136.     GENMULW    multab,0,scrbw,scrh
  137.  
  138.  
  139.                 **** SINTAB EXPANDEN ***
  140.     lea    sinorig,a0
  141.     lea    sin,a1
  142.     lea    sin+1026,a2
  143.     lea    sin+1024,a3
  144.     lea    sin+2050,a4
  145.     move.w    #256,d0
  146. .sinl    move.w    (a0)+,d1
  147.     move.w    d1,(a1)+
  148.     move.w    d1,-(a2)
  149.     neg.w    d1
  150.     move.w    d1,(a3)+
  151.     move.w    d1,-(a4)
  152.     dbf    d0,.sinl    
  153.     lea    sin,a0
  154.     lea    sin+2048,a1
  155.     lea    sin+4096,a2
  156.     move.w    #511,d0
  157. .sinl2
  158.     move.l    (a0)+,d1
  159.     move.l    d1,(a1)+
  160.     move.l    d1,(a2)+
  161.     dbf    d0,.sinl2    
  162.  
  163.  
  164.     move.l    #-2,cop1
  165.     move.l    #-2,cop2
  166.     move.l    #-2,cop1x
  167.     move.l    #-2,cop2x
  168.     bsr    gwaitc
  169.  
  170.  
  171.     lea    ccoltab,a0
  172.     move.w    #zomanz-1,d0
  173.     moveq    #0,d1
  174. .cclop    
  175.     move.w    d1,d2
  176.     mulu    #5,d2
  177.     divu    #zomanz,d2
  178.     mulu    #$111,d2
  179.     add.w    #$222,d2
  180.     move.w    d2,(a0)+
  181.     addq.w    #1,d1
  182.     dbf    d0,.cclop
  183.  
  184.     moveq    #31,d0
  185.     lea    $180(a6),a0
  186. .cblop    move.w    #0,(a0)+
  187.     dbf    d0,.cblop    
  188.  
  189.  
  190.  
  191.     STARTC    #copper
  192.     WVBL
  193.     bsr    calczom
  194.     WVBL
  195.     move.l    $68.w,okey
  196.     move.l    #kinter,$68.w
  197.     move.w    #$8008,$9a(a6)
  198.     bsr    mti
  199.     WVBL
  200.     clr.w    frco
  201.  
  202. ;;
  203. mainloop
  204.  
  205.     WVBL
  206.     bsr    calccol
  207.                     ;5. Plane bearbeiten
  208.     cmp.w    #100,frco
  209.     bcs.w    .nothing
  210.     cmp.w    #164,frco
  211.     bcc.s    .nlogin
  212.                     ;Logo reinblitten
  213.     bsr    blitlog
  214. .nlogin    
  215.  
  216.     cmp.w    #180,frco        ;"P" rein
  217.     bcs.s    .np2
  218.     cmp.w    #180+4*7,frco
  219.     bcc.s    .np2
  220.  
  221.     move.w    frco,d0
  222.     sub.w    #180,d0
  223.     bsr    drawp
  224.  
  225. .np2
  226.     cmp.w    #250,frco        ;"P" raus
  227.     bcs.s    .np22
  228.     cmp.w    #249+4*6,frco
  229.     bcc.s    .np22
  230.  
  231.     move.w    #250+4*6,d0
  232.     sub.w    frco,d0
  233.     bsr    drawp
  234. .np22
  235.                     ;TEXT
  236.     cmp.w    #50,frco
  237.     bcs.s    .txtx
  238.  
  239.  
  240.     move.l    ocurs,a1
  241.     moveq    #0,d0
  242.     bsr    drwcurs    
  243.     tst.w    ftxtco
  244.     beq.s    .dtxt
  245.     bsr    fadetxt
  246.     bra.s    .txtx
  247. .dtxt
  248.     bsr    drawtext
  249.     bsr    drawtext
  250.     btst    #6,$bfe001
  251.     bne.s    .txtx
  252.     bsr    drawtext
  253.     bsr    drawtext
  254.     bsr    drawtext
  255.     bsr    drawtext
  256. .txtx
  257. .nothing    
  258.     move.l    zstab1,a0
  259.     lea    zomsiz1(pc),a2
  260.     bsr    calccop
  261.  
  262.     move.l    zstab2,a0
  263.     lea    zomsiz2(pc),a2
  264.     bsr    calccop
  265.  
  266.     move.l    zstab3,a0
  267.     lea    zomsiz3(pc),a2
  268.     bsr    calccop
  269.  
  270.     move.l    zstab4,a0
  271.     lea    zomsiz4(pc),a2
  272.     bsr    calccop
  273.  
  274.     STARTC    coptab
  275.     lea    zstab1(pc),a0
  276.     bsr    swaps
  277.     lea    zstab2(pc),a0
  278.     bsr    swaps
  279.     lea    zstab3(pc),a0
  280.     bsr    swaps
  281.     lea    zstab4(pc),a0
  282.     bsr    swaps
  283.     lea    coptab(pc),a0
  284.     bsr    swaps
  285.     tst.w    curstat
  286.     bne.w    .ncons
  287.                     ;CONSOLE
  288.     move.b    omous,d1
  289.     move.b    $bfe001,d0
  290.     move.b    d0,omous
  291.     btst    #6,d1
  292.     beq.s    .nlmb
  293.     btst    #6,d0
  294.     bne.s    .nlmb
  295.     move.w    #23*8,ftxtco
  296.     clr.l    curwrt
  297.     move.l    #text2,currd
  298.     tst.w    page
  299.     beq.s    .pg2
  300.     move.l    #text3,currd
  301. .pg2    
  302.     move.w    #1,curstat
  303.     addq.w    #1,page
  304.     cmp.w    #3,page
  305.     beq.s    prgx
  306.     bra.s    .ncons
  307. .nlmb
  308.     tst.w    curstat
  309.     bne.s    .ncons
  310.     tst.w    tmode
  311.     bpl.w    .ncons
  312.     cmp.w    #1,page
  313.     bne.s    .ncons
  314.     moveq    #trainanz-1,d2
  315.     moveq    #0,d0
  316.     lea    traintab(pc),a0
  317.     lea    otrtab(pc),a1
  318. .loop
  319.     move.b    (a0,d0.w),d1
  320.     cmp.b    (a1,d0.w),d1
  321.     bne.s    .dotrn
  322.     addq.w    #1,d0
  323.     dbf    d2,.loop    
  324.     bra.s    .ncons
  325. .dotrn
  326.     move.b    d1,(a1,d0.w)
  327.     move.w    d0,d2
  328.     add.w    d0,d0
  329.     and.w    #1,d1
  330.     add.w    d1,d0
  331.     asl.w    #2,d0
  332.     lea    ttab(pc),a0
  333.     move.l    (a0,d0.w),currd
  334.  
  335.     add.w    #trainy-1,d2
  336.     mulu    #scrbw*8,d2
  337.     move.l    d2,curwrt
  338.     not.w    curstat
  339. .ncons
  340. ;    move.w    #$c,$180(a6)
  341.     bra    mainloop
  342. prgx
  343.     bsr    fadout
  344.     WVBL
  345.     move.l    okey,$68.w
  346.     bsr    mte
  347.     WVBL
  348.     WVBL
  349.     EXIT
  350. okey    dc.l    0
  351. page    dc.w    0
  352. omous    dc.w    0
  353.  
  354. fadout    ;§§
  355.  
  356.     STARTC    #copr1
  357.     WVBL
  358.     WVBL
  359.     lea    txtsc,a0
  360.     move.w    #scrbw*scrh/4-1,d0
  361. .cl    move.l    #-1,(a0)+
  362.     dbf    d0,.cl
  363.     STARTC    #copr2
  364.     WVBL    
  365.     WVBL    
  366.     moveq    #scrbw/4-1,d0
  367.     lea    txtsc,a0
  368.     lea    scrbw-2(a0),a1
  369. .xlop
  370.     WVBL
  371.     move.w    #scrh-1,d1
  372.     lea    (a0),a2
  373.     lea    (a1),a3
  374.     moveq    #0,d2
  375.     moveq    #scrbw,d3
  376. .ylop
  377.     move.w    d2,(a2)
  378.     move.w    d2,(a3)
  379.     add.w    d3,a2
  380.     add.w    d3,a3
  381.     dbf    d1,.ylop
  382.     addq.l    #2,a0
  383.     subq.l    #2,a1
  384.     sub.w    #$111,c2c+2
  385.     dbf    d0,.xlop
  386.     WVBL    
  387.     STARTC    #cop0
  388.     WVBL    
  389.     WVBL    
  390.     rts
  391.     
  392.  
  393. kinter
  394.     movem.l    d0-a6,-(sp)
  395.     move.b    $bfed01,d0
  396.     btst    #3,d0
  397.     beq.s    .fintr
  398.     move.b    $bfec01,d0
  399.     bset    #6,$bfee01
  400.     moveq    #2,d2
  401. .lop2    move.b    $dff006,d1
  402. .lop1    move.b    #$ff,$bfec01
  403.     cmp.b    $dff006,d1
  404.     beq.s    .lop1
  405.     dbf    d2,.lop2
  406.  
  407.     bclr    #6,$bfee01
  408.     tst.b    d0
  409.     beq.s    .noke
  410.     ror.b    d0
  411.     not.b    d0
  412.     move.b    d0,key
  413.     tst.w    tmode
  414.     bpl.w    .noke
  415.     moveq    #0,d0
  416.     move.b    key,d0
  417.     sub.b    #$50,d0        ;F1
  418.     cmp.b    #trainanz,d0    ;Fx
  419.     bcc.s    .noke
  420.     lea    traintab(pc),a0
  421.     not.b    (a0,d0.w)    
  422. .noke
  423. .fintr
  424.     movem.l    (sp)+,d0-a6
  425.     move.w    #$8,$dff09c
  426.     rte
  427.  
  428. key    dc.b    0,0    
  429.  
  430. swaps    movem.l    (a0),d0/d1
  431.     move.l    d0,4(a0)
  432.     move.l    d1,(a0)
  433.     rts
  434.  
  435. drawp
  436.     lea    txtsc+265*scrbw+40,a0
  437.     lea    p2log(pc),a1
  438.     and.w    #-4,d0
  439.     lea    patt(pc),a2
  440.     movem.w    (a2,d0.w),d1/d2
  441.     moveq    #6,d0
  442. .pp2log
  443.     move.w    (a1)+,d3
  444.     and.w    d1,d3
  445.     move.w    d3,(a0)
  446.     exg    d1,d2
  447.     add.w    #scrbw,a0
  448.     dbf    d0,.pp2log
  449.     rts
  450.  
  451. zomsiz1    dc.w    0 ;zomanz-1
  452.     dc.w    0,bpl1pth,bpl1ptl,0,0,10,0,34
  453. zomsiz2    dc.w    zomanz/4            
  454.     dc.w    8,bpl2pth,bpl2ptl,0,0,10,0,34
  455. zomsiz3    dc.w    2*zomanz/4            
  456.     dc.w    16,bpl3pth,bpl3ptl,0,0,10,0,34
  457. zomsiz4    dc.w    3*zomanz/4            
  458.     dc.w    24,bpl4pth,bpl4ptl,0,0,10,0,34
  459.  
  460. coptab    dc.l    cop1,cop2
  461. zstab1    dc.l    zscr11,zscr21
  462. zstab2    dc.l    zscr12,zscr22
  463. zstab3    dc.l    zscr13,zscr23
  464. zstab4    dc.l    zscr14,zscr24
  465.  
  466. pri    dc.w    0
  467.  
  468.  
  469. ;; ********* TEXT FADEN *******
  470. fadetxt
  471.     tst.w    ftxtco
  472.     beq.w    .out
  473.  
  474.     subq.w    #8,ftxtco
  475.     move.w    #23*8,d0
  476.     sub.w    ftxtco,d0
  477.     move.w    d0,d1
  478.     and.w    #7,d0
  479.     mulu    #10,d0
  480.     lea    cpatt,a0
  481.  
  482.     lsr.w    #3,d1
  483.     mulu    #scrbw*8,d1
  484.     add.l    #txtsc+6+59*scrbw,d1
  485.  
  486.     move.l    d1,-(sp)
  487.  
  488.     moveq    #7,d2
  489.     WBLIT
  490.     FIXADJ    0,%1001,%11000000,0
  491.     move.l    #-1,bltafwm(a6)
  492. .loop    WBLIT
  493.     move.w    (a0,d0.w),bltbdat(a6)
  494.     move.w    #0,bltbdat(a6)
  495.     BLITA    d1
  496.     BLITD    d1
  497.     DOBLIT    (scrbw-8)/2,1
  498.     add.l    #scrbw,d1
  499.     addq.w    #2,d0
  500.     dbf    d2,.loop
  501.  
  502.     move.l    (sp)+,a1
  503.     add.w    #9*scrbw,a1
  504.     moveq    #-2,d0
  505.     bsr    drwcurs
  506.  
  507. .out    rts
  508. ftxtco    dc.w    0
  509. ;; ********* LOGO BLITTEN *******
  510. blitlog
  511.     move.w    frco,d0
  512.     sub.w    #100,d0
  513.     add.w    d0,d0
  514.     lea    sin,a0
  515.     asl.w    #2,d0
  516.     move.w    (a0,d0.w),d0
  517.     lsr.w    #3,d0
  518.     add.w    #1,d0
  519.     PROCOFF
  520.     WBLIT
  521.     SETADMOD 0,2*scrbw-32
  522.     FIXADJ    0,%1001,%11000000,0
  523.     BLITA    #logo
  524.     move.w    #33,d1
  525.     sub.w    d0,d1
  526.     mulu    #scrbw*2,d1
  527.     add.l    #txtsc+10*scrbw+6,d1
  528.     BLITD    d1
  529.     
  530.     move.w    #$5555,bltbdat(a6)
  531.     move.l    #-1,bltafwm(a6)
  532.     asl.w    #6,d0
  533.     add.w    #16,d0
  534.     move.w    d0,bltsize(a6)
  535.     
  536.     nop
  537.     rts
  538.  
  539. ;; ********* FARBEN ************
  540. calccol
  541.     move.w    #15,d0
  542.     lea    $180(a6),a0
  543.     moveq    #0,d1
  544.     lea    zomsiz1,a1
  545.     lea    ccoltab,a2
  546. .cclop
  547.     moveq    #0,d2
  548.  
  549.     move.w    pri,d4
  550.     moveq    #0,d4
  551.     move.w    d4,d5
  552.     move.w    d4,d6
  553.     move.w    d4,d7
  554.     addq.w    #1,d5    
  555.     addq.w    #1,d6
  556.     addq.w    #1,d7
  557.     and.w    #3,d4
  558.     and.w    #3,d5
  559.     and.w    #3,d6
  560.     and.w    #3,d7
  561.  
  562.     btst    #0,d1
  563.     beq.w    .npl1
  564.     move.w    (a1),d3
  565.     bsr    .cadd
  566. .npl1    
  567.     btst    #1,d1
  568.     beq.w    .npl2
  569.     move.w    18(a1),d3
  570.     bsr    .cadd
  571. .npl2    
  572.     btst    #2,d1
  573.     beq.w    .npl3
  574.     move.w    2*18(a1),d3
  575.     bsr    .cadd
  576. .npl3    
  577.     btst    #3,d1
  578.     beq.w    .npl4
  579.     move.w    3*18(a1),d3
  580.     bsr    .cadd
  581. .npl4    
  582.     addq.w    #1,d1
  583.     cmp.w    #$fff,d2
  584.     bcs.s    .nov
  585.     move.w    #$fff,d2
  586. .nov
  587.     
  588.     sub.w    fadc,d2
  589.     bpl.s    .nfov
  590.     moveq    #0,d2
  591. .nfov
  592.     move.w    d2,(a0)+
  593.     move.w    d2,d3
  594.     and.w    #$e0e,d2
  595.     lsr.w    #1,d2
  596.     and.w    #$0f0,d3
  597.     add.w    d3,d3
  598.     add.w    #$070,d3
  599.     cmp.w    #$0f0,d3
  600.     bcs.s    .nov2
  601.     move.w    #$0f0,d3
  602. .nov2
  603.     or.w    d3,d2
  604.     move.w    d2,30(a0)
  605.     dbf    d0,.cclop    
  606.     tst.w    fadc
  607.     beq.s    .nadf
  608.     sub.w    #$111,fadc
  609. .nadf    
  610.     rts
  611. .cadd
  612.     add.w    d3,d3
  613.     add.w    (a2,d3.w),d2
  614.     rts
  615. fadc    dc.w    $fff
  616. ;; ******* WAITCOP ERSTELLEN ******
  617. gwaitc
  618.     lea    cop1,a0
  619.     bsr    .doit
  620.     lea    cop2,a0
  621. .doit
  622.     lea    caddt,a1
  623.     move.w    #scrh-1,d0
  624.     move.l    #$1f01fffe,d4
  625. .loop
  626.     move.w    #36,(a1)+
  627.     add.l    #1<<24,d4
  628.     bcc.s    .njmp2
  629.     move.l    #$ffdffffe,(a0)+
  630.     move.w    #40,-2(a1)
  631. .njmp2    
  632.     move.l    d4,(a0)+
  633.     add.w    #32,a0
  634.     dbf    d0,.loop
  635.     move.w    #4,caddt
  636.     rts        
  637.  
  638.  
  639. ;; ******* COPPER ERSTELLEN ******
  640. ;D1:Xoff
  641. ;D2:Yoff
  642. ;A0:Zscr
  643. ;A2:Zomsiz
  644. calccop
  645.     move.w    10(a2),d0
  646.     add.w    12(a2),d0
  647.     and.w    #2046,d0
  648.     move.w    d0,10(a2)
  649.     lea    sin,a1
  650.     move.w    (a1,d0.w),d1
  651.     asl.w    #2,d1
  652.     lea    400(a1),a1
  653.     move.w    (a1,d0.w),d2
  654.     asl.w    #2,d2
  655.  
  656.     move.w    14(a2),d0
  657.     add.w    16(a2),d0
  658.     and.w    #2046,d0
  659.     move.w    d0,14(a2)
  660.     lea    sin,a1
  661.     add.w    (a1,d0.w),d1
  662.     lea    800(a1),a1
  663.     add.w    (a1,d0.w),d2
  664.     move.w    frco,d3
  665.     asl.w    #4,d3
  666.     sub.w    d3,d2
  667.  
  668.     addq.w    #1,(a2)
  669.     cmp.w    #zomanz-1,(a2)
  670.     bne.s    .znov
  671.     move.w    #0,(a2)
  672.     addq.w    #1,pri
  673. .znov
  674.     move.w    (a2),d0
  675.     add.w    d0,d0
  676.     lea    cstab,a1
  677.     moveq    #0,d6
  678.     move.w    (a1,d0.w),d6
  679.  
  680.     muls    cstabe,d2
  681.     divs    d6,d2
  682.     move.w    d2,d5
  683.     add.w    #-scrh/2,d5
  684.  
  685.     muls.w    d6,d5
  686.  
  687.                 ;Erstmal blitten
  688.     muls    cstabe,d1
  689.     divs    d6,d1
  690.     ext.l    d1
  691.     add.l    #scrw/2,d1
  692.     
  693.     move.l    #65536*256,d4
  694.     move.l    #65536*2,d3
  695.     divu    d6,d3
  696. .mxpl    tst.w    d1
  697.     bpl.s    .mxpx
  698.     add.w    d3,d1
  699.     bra.s    .mxpl
  700. .mxpx
  701.  
  702. .gslop
  703.     move.l    d4,d3
  704.     lsr.l    #1,d4
  705.  
  706.     divu    d6,d3        ->Kachelgröße
  707.     ext.l    d1
  708.     divu    d3,d1
  709.     swap    d1
  710.     cmp.w    #scrw,d1
  711.     bcc.s    .gslop
  712.  
  713.     mulu    #scrbw,d0
  714.     add.l    #zomscr,d0
  715.     move.l    d0,a1
  716.     move.w    d1,d3
  717.     not.w    d3
  718.     lsr.w    #4,d1
  719.     add.w    d1,d1
  720.     add.w    d1,a1
  721.     WBLIT
  722.     PROCON
  723.     SETADMOD 0,0
  724.     BLITA    a1
  725.     REGADJ    d3,%1001,%11110000,0
  726.     move.l    #-1,bltafwm(a6)    
  727.     BLITD    a0
  728.     DOBLIT    scrbw/2+1,1
  729.     addq.l    #2,a0
  730.     move.l    a0,a1
  731.     WBLIT
  732.     FIXADJ    0,%1001,%00000000,0
  733.     BLITA    a0
  734.     add.w    #scrbw,a0
  735.     BLITD    a0
  736.     DOBLIT    scrbw/2,1
  737.  
  738.     move.l    a0,d0
  739.     move.l    a0,d1
  740.     move.w    4(a2),d0
  741.     swap    d0
  742.     and.l    #$ffff,d1
  743.     or.l    6(a2),d1
  744.  
  745.     move.l    a1,d2
  746.     move.l    a1,d3
  747.     move.w    4(a2),d2
  748.     swap    d2
  749.     and.l    #$ffff,d3
  750.     or.l    6(a2),d3
  751.  
  752.     move.l    coptab,a0
  753.     add.w    2(a2),a0
  754.  
  755.     move.w    #scrh-1,d7
  756.  
  757.     lea    caddt,a1
  758. .loop
  759.     add.w    (a1)+,a0
  760.     add.l    d6,d5
  761.     btst    #16,d5
  762.     beq.s    .eq    
  763.     move.l    d0,(a0)
  764.     move.l    d1,4(a0)
  765.     dbf    d7,.loop
  766.     move.l    #-2,(a0)
  767.     rts
  768.  
  769. .eq
  770.     move.l    d2,(a0)
  771.     move.l    d3,4(a0)
  772.  
  773.     dbf    d7,.loop
  774.     move.l    #-2,(a0)
  775.     rts
  776. ;; ******* ZOOMEN BERECHNEN ******
  777. calczom
  778.     move.w    #zomanz-1,d0
  779.     lea    zomscr,a0
  780.     move.l    #1<<14,d5
  781.     lea    cstab,a1
  782. .zolop
  783.  
  784.     move.w    d5,(a1)+
  785.     
  786.     move.w    #scrw*2-1,d1
  787.     moveq    #0,d2
  788.     moveq    #7,d3
  789.  
  790.     move.w    d5,d4
  791.     muls    #-scrw,d4
  792.  
  793. .zxlop
  794.     move.l    d4,d6
  795.     add.l    d5,d4
  796.  
  797.     swap    d2
  798.  
  799.     bclr    d3,(a0,d2.w)
  800.     btst    #16,d4
  801.     beq.s    .kset
  802.     btst    #15,d4
  803.     beq.s    .kset
  804.     bset    d3,(a0,d2.w)
  805. .kset
  806.     swap    d2
  807.     add.l    #1<<13,d2
  808.     subq.w    #1,d3
  809.     dbf    d1,.zxlop
  810.     sub.l    #1<<14/(zomanz+1),d5
  811.     add.w    #scrbw*2,a0
  812.     dbf    d0,.zolop
  813.  
  814.     rts
  815.  
  816. ;; ******* TEXT MALEN *********
  817. ;A0:Text A1:GFX
  818. drawtext
  819.     move.l    currd,a0
  820.     move.w    curwrt,d0
  821.     move.w    curwrt+2,d1
  822.     add.w    d0,d1
  823.     lea    txtsc+6+60*scrbw,a1
  824.     add.w    d1,a1
  825.  
  826.     moveq    #-2,d0
  827.     btst    #2,frco+1
  828.     beq.s    .con
  829.     moveq    #0,d0
  830. .con    
  831.     bsr    drwcurs
  832.     tst.w    curstat
  833.     beq.s    .out
  834.     
  835.     moveq    #0,d0
  836.     move.b    (a0)+,d0
  837.     move.l    a0,currd
  838.     tst.b    d0
  839.     beq.s    .linex
  840.     lea    font,a3
  841.     sub.b    #32,d0
  842.     add.w    d0,a3
  843. .found
  844.     move.l    a1,a2
  845.     clr.b    -scrbw(a1)
  846.     clr.b    5*scrbw(a1)
  847.  
  848. .ylop
  849.     move.b    (a3),d1
  850.     move.b    d1,(a2)
  851.     move.b    1*60(a3),d1
  852.     move.b    d1,1*scrbw(a2)
  853.     move.b    2*60(a3),d1
  854.     move.b    d1,2*scrbw(a2)
  855.     move.b    3*60(a3),d1
  856.     move.b    d1,3*scrbw(a2)
  857.     move.b    4*60(a3),d1
  858.     move.b    d1,4*scrbw(a2)
  859.  
  860. .nfnd    addq.w    #1,curwrt
  861.     addq.w    #1,a1
  862.     moveq    #-2,d0
  863.     bsr    drwcurs
  864. .out    rts
  865. .linex
  866.     moveq    #0,d0
  867.     bsr    drwcurs
  868.     clr.w    curwrt
  869.     add.w    #8*scrbw,curwrt+2
  870.  
  871.  
  872.     tst.b    (a0)
  873.     bpl.s    .procx
  874.     clr.w    curstat
  875.     cmp.b    #-1,(a0)
  876.     beq.s    .procx
  877.     move.b    (a0),tmode
  878.     cmp.b    #-2,(a0)
  879.     beq.s    .setcp
  880.     move.l    tcurp,curwrt    
  881. .procx
  882.     move.w    curwrt,d0
  883.     move.w    curwrt+2,d1
  884.     add.w    d0,d1
  885.     lea    txtsc+6+60*scrbw,a1
  886.     add.w    d1,a1
  887.     moveq    #-2,d0
  888.     bsr    drwcurs
  889.     rts
  890. .setcp
  891.     move.l    curwrt,tcurp
  892.     rts
  893.  
  894. drwcurs    
  895.     move.b    d0,-1*scrbw(a1)
  896.     move.b    d0,(a1)
  897.     move.b    d0,1*scrbw(a1)
  898.     move.b    d0,2*scrbw(a1)
  899.     move.b    d0,3*scrbw(a1)
  900.     move.b    d0,4*scrbw(a1)
  901.     move.b    d0,5*scrbw(a1)
  902.     move.l    a1,ocurs
  903.     rts    
  904. ocurs    dc.l    txtsc
  905. curstat    dc.w    1
  906. curwrt    dc.w    0,0
  907. currd    dc.l    text1
  908. tmode    dc.w    0
  909. tcurp    dc.w    0,0
  910. inter
  911.     IRQIN
  912.     lea    $dff000,a6
  913.     move.l    #txtsc,bpl1pth(a6)
  914.     move.l    #txtsc,bpl5pth(a6)
  915.     addq.w    #1,frco
  916.     bcc.s    .nfrx
  917.     move.w    #65535,frco
  918. .nfrx    
  919.     bsr    mtm
  920.     IRQOUT
  921. frco    dc.w    0
  922. frcx    dc.w    0
  923. patt
  924.     dc.w    %0000000000000000
  925.     dc.w    %0000000000000000
  926.  
  927.     dc.w    %0000000000000000
  928.     dc.w    %1000100010001000
  929.  
  930.     dc.w    %0000000000000000
  931.     dc.w    %1010101010101010
  932.  
  933.     dc.w    %0101010101010101
  934.     dc.w    %1010101010101010
  935.  
  936.     dc.w    %0101010101010101
  937.     dc.w    %1111111111111111
  938.  
  939.     dc.w    %0111011101110111
  940.     dc.w    %1111111111111111
  941.  
  942.     dc.w    %1111111111111111
  943.     dc.w    %1111111111111111
  944.  
  945.     dc.w    %1111111111111111
  946.     dc.w    %1111111111111111
  947.  
  948. cpatt
  949.     dc.w    0,0,0,0,0
  950.     dc.w    %1010101010101010
  951.     dc.w    %0101010101010101
  952.     dc.w    %1010101010101010
  953.     dc.w    %0101010101010101
  954.     dc.w    %1010101010101010
  955.  
  956.     dc.w    %1111111111111111
  957.     dc.w    %0111011101110111
  958.     dc.w    %1111111111111111
  959.     dc.w    %0111011101110111
  960.     dc.w    %1111111111111111
  961.  
  962.     dc.w    %1111111111111111
  963.     dc.w    %0101010101010101
  964.     dc.w    %1111111111111111
  965.     dc.w    %0101010101010101
  966.     dc.w    %1111111111111111
  967.  
  968.     dc.w    %0000000000000000
  969.     dc.w    %0000000000000000
  970.     dc.w    %0000000000000000
  971.     dc.w    %0000000000000000
  972.     dc.w    %0000000000000000
  973.  
  974.     dc.w    %1010101010101010
  975.     dc.w    %0101010101010101
  976.     dc.w    %1010101010101010
  977.     dc.w    %0101010101010101
  978.     dc.w    %1010101010101010
  979.  
  980.  
  981.     dc.w    %1010101010101010
  982.     dc.w    %0000000000000000
  983.     dc.w    %1010101010101010
  984.     dc.w    %0000000000000000
  985.     dc.w    %1010101010101010
  986.  
  987.  
  988.  
  989.     dc.w    %1000100010001000
  990.     dc.w    %0000000000000000
  991.     dc.w    %1000100010001000
  992.     dc.w    %0000000000000000
  993.     dc.w    %1000100010001000
  994.  
  995.     dc.w    %0000000000000000
  996.     dc.w    %0000000000000000
  997.     dc.w    %0000000000000000
  998.     dc.w    %0000000000000000
  999.     dc.w    %0000000000000000
  1000.  
  1001.  
  1002.  
  1003.     dc.w    %0001111100011111
  1004.     dc.w    %0001111100011111
  1005.     dc.w    %1111111111111111
  1006.     dc.w    %1111111111111111
  1007.     dc.w    %1111111111111111
  1008.  
  1009.     dc.w    %0001111100011111
  1010.     dc.w    %0001111100011111
  1011.     dc.w    %1111111111111111
  1012.     dc.w    %0001111100011111
  1013.     dc.w    %0001111100011111
  1014.  
  1015.     dc.w    %0001111100011111
  1016.     dc.w    %0001111100011111
  1017.     dc.w    %1111111111111111
  1018.     dc.w    %0001000000010000
  1019.     dc.w    %0001000000010000
  1020.  
  1021.     dc.w    %0001000000010000
  1022.     dc.w    %0001000000010000
  1023.     dc.w    %1111111111111111
  1024.     dc.w    %0001000000010000
  1025.     dc.w    %0001000000010000
  1026.  
  1027.     dc.w    %0001000000010000
  1028.     dc.w    %0001000000010000
  1029.     dc.w    %0001111100011111
  1030.     dc.w    %0001000000010000
  1031.     dc.w    %0001000000010000
  1032.  
  1033.     dc.w    %0001000000010000
  1034.     dc.w    %0001000000010000
  1035.     dc.w    %0001000000010000
  1036.     dc.w    %0001000000010000
  1037.     dc.w    %0001000000010000
  1038.  
  1039.     dc.w    %0000000000000000
  1040.     dc.w    %0000000000000000
  1041.     dc.w    %0001000000010000
  1042.     dc.w    %0001000000010000
  1043.     dc.w    %0001000000010000
  1044.  
  1045.     dc.w    %0000000000000000
  1046.     dc.w    %0000000000000000
  1047.     dc.w    %0000000000000000
  1048.     dc.w    %0000000000000000
  1049.     dc.w    %0000000000000000
  1050.     
  1051.  
  1052.  
  1053.     TEXTE
  1054. otrtab    blk.b    trainanz,0
  1055.     EVEN
  1056. cop0    copmode    0,0,0,0,0
  1057.     dc.w    $180,0
  1058.     dc.l    -2
  1059.  
  1060.  
  1061. copper    copmode    5,0,0,0,0
  1062.     copddf    97,32,scrw,scrh
  1063.     copwin    113,32,scrw,scrh
  1064.  
  1065.     dc.w    $102,$ff
  1066.     copemod    0
  1067.     copomod    0
  1068.     dc.l    -2
  1069.  
  1070. copr1    copmode    0,0,0,0,0
  1071.     dc.w    $180,$fff
  1072.     dc.l    -2
  1073. copr2    copmode    1,0,0,0,0
  1074.     dc.w    $180,$0
  1075. c2c    dc.w    $182,$fff
  1076.     copddf    97,32,scrw,scrh
  1077.     copwin    113,32,scrw,scrh
  1078.     dc.l    -2
  1079.  
  1080.  
  1081.  
  1082. font    incbin    "df0:Ply2-Intro1/raw/tal8x5.font"
  1083. logo
  1084.     incbin    "df0:Ply2-Intro1/raw/trsi-future.gfx"
  1085. sinorig    incbin    "df0:Ply2-Intro1/raw/wsintab1024",514
  1086.  
  1087. p2log
  1088.     dc.w    %11111111111100
  1089.     dc.w    %10000110110100
  1090.     dc.w    %11110010110100
  1091.     dc.w    %10000110110100
  1092.     dc.w    %10011110110100
  1093.     dc.w    %10011110110100
  1094.     dc.w    %11111111111100
  1095. mti    MT_INIT
  1096. mte    MT_EXIT
  1097. mtm    MT_VBL
  1098.  
  1099. ende    
  1100.     printt    "Soviel is schon wech:"
  1101.     printv    ende-anf
  1102.     section    "Würg",bss_c
  1103. multab    ds.w    scrh
  1104.  
  1105. caddt    ds.w    scrh
  1106.  
  1107. ccoltab    ds.w    zomanz
  1108. cstab    ds.w    zomanz-2
  1109. cstabe    ds.w    1
  1110.  
  1111. cop1    ds.l    scrh*9+20
  1112. cop1x    ds.l    1
  1113. cop2    ds.l    scrh*9+20
  1114. cop2x    ds.l    1
  1115.  
  1116. logosc    ds.w    32*scrbw
  1117. txtsc    ds.w    scrbw*scrh/2
  1118.  
  1119. zomscr    ds.w    zomanz*scrbw
  1120.  
  1121.  
  1122. zscr11    ds.w    scrbw+2
  1123. zscr12    ds.w    scrbw+2
  1124. zscr13    ds.w    scrbw+2
  1125. zscr14    ds.w    scrbw+2
  1126. zscr21    ds.w    scrbw+2
  1127. zscr22    ds.w    scrbw+2
  1128. zscr23    ds.w    scrbw+2
  1129. zscr24    ds.w    scrbw+2
  1130.  
  1131.     ds.w    100
  1132. sin    ds.w    3072
  1133. memx
  1134.